// 示例 1：

// 输入：intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]
// 输出：[[1, 6], [8, 10], [15, 18]]
// 解释：区间[1, 3] 和[2, 6] 重叠, 将它们合并为[1, 6].
//     示例 2：

// 输入：intervals = [[1, 4], [4, 5]]
// 输出：[[1, 5]]
// 解释：区间[1, 4] 和[4, 5] 可被视为重叠区间。

intervals = [[1, 3], [2, 6], [8, 10], [15, 18]]

// var merge = function (intervals) {
//     if (intervals.length <= 1) return intervals;
//     let result = []
//     intervals.sort((a, b) => a[0] - b[0])
//     result.push(intervals[0])
//     for (let i = 1; i < intervals.length; i++) {
//         let last = result[result.length - 1]
//         let now = intervals[i]
//         if (now[0] <= last[1]) {
//             last[1] = Math.max(last[1], now[1])
//         } else {
//             result.push(now)
//         }
//     }
//     return result;
// };

var merge = function (intervals) {
    if (intervals.length <= 1) return intervals;

    intervals.sort((a, b) => a[0] - b[0]);
    let res = [intervals[0]];

    for (let i = 1; i < intervals.length; i++) {
        let now = intervals[i], last = res[res.length - 1];
        if (now[0] <= last[1]) {
            last[1] = Math.max(now[1], last[1])
        } else {
            res.push(now)
        }
    }

    return res;
}

console.log(merge(intervals));
